import com.google.gson.*;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.*;

public class Persona {
	
	private String nombre;
	private String apellido;
	private int edad;
	
	public Persona(){
		
	}
	
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getApellido() {
		return apellido;
	}
	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
	public int getEdad() {
		return edad;
	}
	public void setEdad(int edad) {
		this.edad = edad;
	}
	
	public static void main(String[] args)
	{
		Persona persona1 = new Persona();
		persona1.setNombre("Alfredo");
		persona1.setApellido("Hernandez");
		persona1.setEdad(20);
		
		Gson gson = new Gson();
		String jsonOutput= gson.toJson(persona1);
		
		System.out.println(jsonOutput);
		
		Persona persona2 = new Persona();
		
		Type collectionType = new TypeToken<Persona>(){}.getType();
		persona2 = gson.fromJson(jsonOutput, collectionType);
		
		System.out.println(persona2.getNombre());
		
	}
	

}
